<?php

class Solicitudes_SeleccionConsejeroController extends Zend_Controller_Action
{
	private $nav;
	//private $infoPrograma;
	private $codproceso;
	private $datosproceso;
	//private $codestado;
	//private $datospar;
	
	
    public function init() {
        $sesionProceso = new Zend_Session_Namespace("PROCESO");
		$this->codproceso = $sesionProceso->codproceso;
		$Proceso = new Solicitudes_Model_DetalleSolicitud();
        $this->datosproceso = $Proceso->cargardatosProceso($this->codproceso);
		
		$Programa = new Solicitudes_Model_DetalleSolicitud();
		$this->view->infoPrograma = $Programa->cargardatosPrograma($this->datosproceso["codprograma"]);
//        $this->codestado =  $Programa->getEstadoProceso($sesionProceso->codproceso);
    	
    	$this->nav = new App_Util_Navegacion();
		$this->nav->agregar_navegacion("Lista de solicitudes", "/solicitudes/index/lista","Lista de solicitudes");
        $this->nav->agregar_navegacion("Selección de consejero","","");
		$this->view->nav = $this->nav;

        		
            $this->view->extensiones = $Programa->cargardatosPrograma("","",$this->view->infoPrograma["codprograma"]);
    	    
    	    if ($this->view->infoPrograma["extension"]==1){
    	        if (!empty($this->view->infoPrograma["pro_codprograma"])){
    	            $this->view->programaextiende = $Programa->cargardatosPrograma($this->view->infoPrograma["pro_codprograma"]);
    	        }
    	    }
		/*$serviceTable = new Visitas_Model_ParesProceso();
		$this->datospar = $serviceTable->getCodigoParProceso($this->datosproceso["codproceso"],App_User::getCodigoUsuario());*/
		
		//Resumen Informacion del programa (va en todos los actions)
		//$this->instituciones = new Instituciones_Model_Instituciones();
		//$infoinstitucion= $this->instituciones->cargardatosInfo($codinstitucion);
		//$this->view->infoInstitucion=$infoinstitucion;
    }

    public function indexAction() {
		$usuariosService = new Usuarios_Model_Usuarios();
		$informeService = new Solicitudes_Model_Informe();

		$codproceso = $this->codproceso;
	    if( $this->getRequest()->isPost() ) {
	        $codconsejero = $this->_getParam("rbSelec");
			
			try {
			    if (is_null($codconsejero)) {
					throw new Exception("Debe seleccionar un consejero.");
				}
			    if (is_null($codproceso)) {
				    throw new Exception("Ha ocurrido un error interno al enviar el código del proceso en el formulario.");
				}
			
			    $informeService->asignarConsejeroInforme($codproceso, $codconsejero);
				$this->view->priorityMessenger("Los datos se han guardado correctamente", "success");
				$this->_helper->redirector("index");
				
			} catch (Exception $e) {
				$this->view->priorityMessenger($e->getMessage(), "error");
			}
		}
		
		$informe = $informeService->getInformeProceso($codproceso);
   	    $this->view->codconsejero = $informe["codconsejero"];
		$this->view->datosConsejeros = $usuariosService->getUsuariosPorRolPadre(Roles_Model_Roles::CODPADRE_CONSEJERO);
    }
    
    public function finalizarAction() {
    	$codproceso = $this->codproceso;
    	
    	try {
    	    
    	    $informeService = new Solicitudes_Model_Informe();
    	    $informe = $informeService->getInformeProceso($codproceso);
   	        if(empty($informe["codconsejero"])) {
   	            throw new Exception("Para finalizar debe seleccionar un consejero.");
   	        }
   	    
            $historico = new Solicitudes_Model_Historicoprocesos();
            $historico->guardarEstadoProceso($codproceso, Solicitudes_Model_Historicoprocesos::CON_CONSEJERO_DESIGNADO);
            $this->view->priorityMessenger("El proceso de selección del consejero finalizó correctamente.", "success");
        } catch(Exception $e) {
            $this->view->priorityMessenger($e->getMessage(), "error");
            $this->_helper->redirector("index");
        }
        $this->_helper->redirector("lista","index");
    }

    
}//fin de la clase

